DTB Paradox a Formulare
Otázka od: bugi
28. 11. 2002 7:09
Ahojte,
na hlavnom formulari mam DBGrid do ktoreho nacitavam /jednu z mnohych/
databazu.
Do Edit-u zadam nazov databazy a po kliknuti na tlacidlo sa spusti tato
obsluha:
procedure TForm1.Button2Click(Sender: TObject);
var
Y: Variant;
begin
Y := Edit1.Text;
Table1.Active := False;
Table1.DatabaseName := 'data';
Table1.TableName := Y;
Table1.Active := True;
end;
V premennej Y mam nazov databazy. Ked otvorim druhy formular pre pridavanie
zaznamov potrebujem nadstavit uz otvorenu databazu pre pridavanie, ale
ked tam dosadim premennu Y, ktora by mala obsahovat nazov databazy,
tak to nefunguje.
Do uses Unit-u2 som vlozil Unit1, ale aj tak to nepomohlo.
Vo Form2 som si dal vypisat premennu Y, ale je prazdna!
Skusil som premennu Y deklarovat mimo obsluhy tlacidla, ale ani to
nepomohlo.
Pri OnCreate Form2 by som potreboval nejak zistit nazov databazy, ktora
je prave otvorena vo Form1 a pomocou nejakej premennej ju odovzdat ako
parameter, ktory by som mohol zadat pre prepnutie databazy do rezimu
pridavania.
Y.Append; ---> toto nefunguje tiez ...
Vyskusal som uz kadeco, ale bezvysledne ...
Kde robim chybu? Ako na to ?
Dik,
A
Bugala Alex - stredoskolak 2 roc.
-----------------------------------------------------
Win2000 Prof Cz - SP2
Delphi 3 Client / Server Suite
Odpovedá: Roman Newman
28. 11. 2002 7:57
Ak som to spravne pochopil:
Ak chces aby premenna Y aj s hodnotou previedla do druheho unitu, musi byt
deklarovana v interface....implementation, niekde pod Form1:TForm1, ale
preco necitas nazov prave zvolenej tabulky prave z komponentu
Table1.TableName to je property.
Pri tom otvarani Form2 sa to da spravit takto:
.
.
implementation
Uses Unit1;
procedure FormCreate(Sender: TObject);
begin
ShowMessage(Form1.Table1.TableName);
end;
Alebo ak vytvaras formular Form2 dinamicky mozes mu prepisat constructor tak
aby pozadoval aj nazov tabulky.
Roman Newman
Odpovedá: Jiří Matějka
28. 11. 2002 9:20
Prijde mi ze v promenne Y mas spis nazev tabulky nez databaze ...
Y := Edit1.Text;
Table1.TableName := Y;
Kazdopadne Y je deklarovana jako lokalni promenna v procedure
TForm1.Button2Click, takze z jine unity viditelna nebude. Zkus ji deklarovat
jako globalni v cele unite nebo jako public property Formu1...
Jirka Matejka
----- Original Message -----
From: "bugi" <bugala_a@centrum.sk>
To: "Konfa Delphi" <delphi-l@clexpert.cz>
Sent: Thursday, November 28, 2002 6:27 AM
Subject: DTB Paradox a Formulare
> Ahojte,
>
> na hlavnom formulari mam DBGrid do ktoreho nacitavam /jednu z mnohych/
> databazu.
> Do Edit-u zadam nazov databazy a po kliknuti na tlacidlo sa spusti tato
> obsluha:
>
> procedure TForm1.Button2Click(Sender: TObject);
> var
> Y: Variant;
> begin
> Y := Edit1.Text;
>
> Table1.Active := False;
> Table1.DatabaseName := 'data';
> Table1.TableName := Y;
> Table1.Active := True;
> end;
>
> V premennej Y mam nazov databazy. Ked otvorim druhy formular pre
pridavanie
> zaznamov potrebujem nadstavit uz otvorenu databazu pre pridavanie, ale
> ked tam dosadim premennu Y, ktora by mala obsahovat nazov databazy,
> tak to nefunguje.
>
> Do uses Unit-u2 som vlozil Unit1, ale aj tak to nepomohlo.
>
> Vo Form2 som si dal vypisat premennu Y, ale je prazdna!
>
> Skusil som premennu Y deklarovat mimo obsluhy tlacidla, ale ani to
> nepomohlo.
>
> Pri OnCreate Form2 by som potreboval nejak zistit nazov databazy, ktora
> je prave otvorena vo Form1 a pomocou nejakej premennej ju odovzdat ako
> parameter, ktory by som mohol zadat pre prepnutie databazy do rezimu
> pridavania.
>
> Y.Append; ---> toto nefunguje tiez ...
>
> Vyskusal som uz kadeco, ale bezvysledne ...
>
> Kde robim chybu? Ako na to ?
>
> Dik,
> A
>
>
>
>
> Bugala Alex - stredoskolak 2 roc.
> -----------------------------------------------------
> Win2000 Prof Cz - SP2
> Delphi 3 Client / Server Suite
>
>
>
>
>
>
>
>
---
Odchozí zpráva neobsahuje viry.
No viruses found in the outgoing message.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.422 / Virová báze: 237 - datum vydání: 21.11.2002